﻿namespace Om.Core.Singleton;

/// <summary>
/// 单例基类，提供单例模式的基本实现。
/// </summary>
public abstract class SingletonBase<T> where T : SingletonBase<T>, new()
{
    // 用于存放单例实例的私有静态字段
    private static readonly Lazy<T> _instance = new Lazy<T>(() => new T());

    /// <summary>
    /// 获取单例实例
    /// </summary>
    public static T Instance => _instance.Value;

    // 私有构造函数，防止外部实例化
    protected SingletonBase()
    {
    }

}